home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / misc / Resistor.lha / resistor / src / resistor.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-15  |  51.4 KB  |  685 lines

  1. /*************************************************************************/
  2. /*                                                                       */
  3. /*   Includes                                                            */
  4. /*                                                                       */
  5. /*************************************************************************/
  6. #include "resistor_Includes.h"
  7. #include "resistor.h"
  8.  
  9. /*************************************************************************/
  10. /*                                                                       */
  11. /*   Variables and Structures                                            */
  12. /*                                                                       */
  13. /*************************************************************************/
  14. extern struct IntuitionBase *IntuitionBase;
  15. extern struct GfxBase       *GfxBase;
  16.  
  17. extern struct UtilityBase   *UtilityBase;
  18.  
  19. extern struct Library *GadToolsBase ;
  20. extern struct Library *AslBase      ;
  21. extern struct Library *DataTypesBase;
  22.  
  23. extern char werte[13][7];
  24. extern int ringvalue[];
  25. extern int faktor;
  26.  
  27. /*************************************************************************/
  28. /*                                                                       */
  29. /*   Defines                                                             */
  30. /*                                                                       */
  31. /*************************************************************************/
  32. #define GADGET_DOWN  0
  33. #define GADGET_UP    1
  34. #define RASTERX (((struct GfxBase *)GfxBase)->DefaultFont->tf_XSize)
  35. #define RASTERY (((struct GfxBase *)GfxBase)->DefaultFont->tf_YSize/2+4)
  36.  
  37. #define XSIZE(x)  ((x)*RASTERX)
  38. #define YSIZE(x)  ((x)*RASTERY)
  39.  
  40. #define XPOS(x)   (XSIZE(x)+customscreen->WBorLeft)
  41. #define YPOS(x)   (YSIZE(x)+customscreen->BarHeight+1)
  42.  
  43. /*************************************************************************/
  44. /*                                                                       */
  45. /*   WindowStructures                                                    */
  46. /*                                                                       */
  47. /*************************************************************************/
  48. ///Window
  49. struct WindowData
  50.         {
  51.         BOOL    gd_Disabled_IN_Wert;
  52.         ULONG   gd_Number_IN_Wert;
  53.         BOOL    gd_Disabled_CY_Bereich;
  54.         UWORD   gd_Active_CY_Bereich;
  55.         char * *gd_Labels_CY_Bereich;
  56.         BOOL    gd_Disabled_CY_Toleranz;
  57.         UWORD   gd_Active_CY_Toleranz;
  58.         char * *gd_Labels_CY_Toleranz;
  59.         BOOL    gd_Disabled_BT_schwarz_w;
  60.         BOOL    gd_Disabled_BT_braun_w;
  61.         BOOL    gd_Disabled_BT_rot_w;
  62.         BOOL    gd_Disabled_BT_orange_w;
  63.         BOOL    gd_Disabled_BT_gelb_w;
  64.         BOOL    gd_Disabled_BT_gruen_w;
  65.         BOOL    gd_Disabled_BT_blau_w;
  66.         BOOL    gd_Disabled_BT_violett_w;
  67.         BOOL    gd_Disabled_BT_grau_w;
  68.         BOOL    gd_Disabled_BT_weiss_w;
  69.         BOOL    gd_Disabled_BT_silber_w;
  70.         BOOL    gd_Disabled_BT_gold_w;
  71.         BOOL    gd_Disabled_BT_silber_t;
  72.         BOOL    gd_Disabled_BT_gold_t;
  73.         BOOL    gd_Disabled_BT_braun_t;
  74.         BOOL    gd_Disabled_BT_rot_t;
  75.         BOOL    gd_Disabled_BT_gruen_t;
  76.         BOOL    gd_Disabled_BT_blau_t;
  77.         BOOL    gd_Disabled_BT_violett_t;
  78.         BOOL    gd_Disabled_BT_neu;
  79.         BOOL    gd_Disabled_BT_Quit;
  80.         BOOL    gd_Disabled_TX_wert;
  81.         char    gd_Text_TX_wert[256];
  82.         BOOL    gd_Disabled_TX_Toleranz;
  83.         char    gd_Text_TX_Toleranz[256];
  84.         BOOL    gd_Disabled_TX_schwarz_w;
  85.         char    gd_Text_TX_schwarz_w[256];
  86.         BOOL    gd_Disabled_TX_braun_w;
  87.         char    gd_Text_TX_braun_w[256];
  88.         BOOL    gd_Disabled_TX_rot_w;
  89.         char    gd_Text_TX_rot_w[256];
  90.         BOOL    gd_Disabled_TX_orange_w;
  91.         char    gd_Text_TX_orange_w[256];
  92.         BOOL    gd_Disabled_TX_gelb_w;
  93.         char    gd_Text_TX_gelb_w[256];
  94.         BOOL    gd_Disabled_TX_gruen_w;
  95.         char    gd_Text_TX_gruen_w[256];
  96.         BOOL    gd_Disabled_TX_blau_w;
  97.         char    gd_Text_TX_blau_w[256];
  98.         BOOL    gd_Disabled_TX_violett_w;
  99.         char    gd_Text_TX_violett_w[256];
  100.         BOOL    gd_Disabled_TX_grau_w;
  101.         char    gd_Text_TX_grau_w[256];
  102.         BOOL    gd_Disabled_TX_weiss_w;
  103.         char    gd_Text_TX_weiss_w[256];
  104.         BOOL    gd_Disabled_TX_silber_w;
  105.         char    gd_Text_TX_silber_w[256];
  106.         BOOL    gd_Disabled_TX_gold_w;
  107.         char    gd_Text_TX_gold_w[256];
  108.         BOOL    gd_Disabled_TX_silber_t;
  109.         char    gd_Text_TX_silber_t[256];
  110.         BOOL    gd_Disabled_TX_gold_t;
  111.         char    gd_Text_TX_gold_t[256];
  112.         BOOL    gd_Disabled_TX_braun_t;
  113.         char    gd_Text_TX_braun_t[256];
  114.         BOOL    gd_Disabled_TX_rot_t;
  115.         char    gd_Text_TX_rot_t[256];
  116.         BOOL    gd_Disabled_TX_gruen_t;
  117.         char    gd_Text_TX_gruen_t[256];
  118.         BOOL    gd_Disabled_TX_blau_t;
  119.         char    gd_Text_TX_blau_t[256];
  120.         BOOL    gd_Disabled_TX_violett_t;
  121.         char    gd_Text_TX_violett_t[256];
  122.         BOOL    gd_Disabled_TX1Ring;
  123.         char    gd_Text_TX1Ring[256];
  124.         BOOL    gd_Disabled_TX2Ring;
  125.         char    gd_Text_TX2Ring[256];
  126.         BOOL    gd_Disabled_TX3Ring;
  127.         char    gd_Text_TX3Ring[256];
  128.         BOOL    gd_Disabled_TX4Ring;
  129.         char    gd_Text_TX4Ring[256];
  130.         };
  131.  
  132. ///
  133. /*************************************************************************/
  134. /*                                                                       */
  135. /*   Routines to handle gadgets                                          */
  136. /*                                                                       */
  137. /*************************************************************************/
  138. ///Window
  139. int HandleGadgetsWindow(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,struct WindowData *gadgetdata,int ringnr)
  140. {
  141.         switch(gadgetid)
  142.                 {
  143.                 case INID_Wert:
  144.                         ringnr = INWertClicked(win,wingads,gadgetid,messagecode,ringnr);
  145.                         break;
  146.                 case CYID_Bereich:
  147.                         ringnr = CYBereichClicked(win,wingads,gadgetid,messagecode,ringnr);
  148.                         break;
  149.                 case CYID_Toleranz:
  150.                         ringnr = CYToleranzClicked(win,wingads,gadgetid,messagecode,ringnr);
  151.                         break;
  152.                 case BTID_schwarz_w:
  153.                         if (ringnr < 4) ringnr = BTschwarz_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  154.                         break;
  155.                 case BTID_braun_w:
  156.                         if (ringnr < 4) ringnr = BTbraun_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  157.                         break;
  158.                 case BTID_rot_w:
  159.                         if (ringnr < 4) ringnr = BTrot_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  160.                         break;
  161.                 case BTID_orange_w:
  162.                         if (ringnr < 4) ringnr = BTorange_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  163.                         break;
  164.                 case BTID_gelb_w:
  165.                         if (ringnr < 4) ringnr = BTgelb_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  166.                         break;
  167.                 case BTID_gruen_w:
  168.                         if (ringnr < 4) ringnr = BTgruen_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  169.                         break;
  170.                 case BTID_blau_w:
  171.                         if (ringnr < 4) ringnr = BTblau_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  172.                         break;
  173.                 case BTID_violett_w:
  174.                         if (ringnr < 4) ringnr = BTviolett_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  175.                         break;
  176.                 case BTID_grau_w:
  177.                         if (ringnr < 4) ringnr = BTgrau_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  178.                         break;
  179.                 case BTID_weiss_w:
  180.                         if (ringnr < 4) ringnr = BTweiss_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  181.                         break;
  182.                 case BTID_silber_w:
  183.                         if (ringnr < 4) ringnr = BTsilber_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  184.                         break;
  185.                 case BTID_gold_w:
  186.                         if (ringnr < 4) ringnr = BTgold_wClicked(win,wingads,gadgetid,messagecode,ringnr);
  187.                         break;
  188.                 case BTID_silber_t:
  189.                         ringnr = BTsilber_tClicked(win,wingads,gadgetid,messagecode,ringnr);
  190.                         break;
  191.                 case BTID_gold_t:
  192.                         ringnr = BTgold_tClicked(win,wingads,gadgetid,messagecode,ringnr);
  193.                         break;
  194.                 case BTID_braun_t:
  195.                         ringnr = BTbraun_tClicked(win,wingads,gadgetid,messagecode,ringnr);
  196.                         break;
  197.                 case BTID_rot_t:
  198.                         ringnr = BTrot_tClicked(win,wingads,gadgetid,messagecode,ringnr);
  199.                         break;
  200.                 case BTID_gruen_t:
  201.                         ringnr = BTgruen_tClicked(win,wingads,gadgetid,messagecode,ringnr);
  202.                         break;
  203.                 case BTID_blau_t:
  204.                         ringnr = BTblau_tClicked(win,wingads,gadgetid,messagecode,ringnr);
  205.                         break;
  206.                 case BTID_violett_t:
  207.                         ringnr = BTviolett_tClicked(win,wingads,gadgetid,messagecode,ringnr);
  208.                         break;
  209.                 case BTID_neu:
  210.                         ringnr = BTneuClicked(win,wingads,gadgetid,messagecode,ringnr);
  211.                         break;
  212.                 case BTID_Quit:
  213.                         ringnr = BTQuitClicked(win,wingads,gadgetid,messagecode,ringnr);
  214.                         break;
  215.                 };
  216.     return ringnr;
  217. }
  218.  
  219. ///
  220. /*************************************************************************/
  221. /*                                                                       */
  222. /*   Routines to create gadgets                                          */
  223. /*                                                                       */
  224. /*************************************************************************/
  225. ///Window
  226. struct Gadget *CreateGadgetsWindow(struct Gadget **gadgetlist,struct NewGadget newgad[],struct Gadget *wingads[],struct WindowData *gadgetdata)
  227. {
  228.         struct Gadget *gadget=CreateContext(gadgetlist);
  229.         if (gadget)
  230.                 {
  231.                 wingads[INID_Wert]=gadget=CreateGadget(INTEGER_KIND,gadget,&newgad[INID_Wert],GA_Disabled,gadgetdata->gd_Disabled_IN_Wert,GA_TabCycle,TRUE,GTIN_MaxChars,12,GTIN_Number,gadgetdata->gd_Number_IN_Wert,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGRIGHT,STRINGA_ReplaceMode,FALSE,TAG_END);
  232.                 wingads[CYID_Bereich]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Bereich],GA_Disabled,gadgetdata->gd_Disabled_CY_Bereich,GTCY_Labels,(ULONG)gadgetdata->gd_Labels_CY_Bereich,GTCY_Active,gadgetdata->gd_Active_CY_Bereich,TAG_END);
  233.                 wingads[CYID_Toleranz]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Toleranz],GA_Disabled,gadgetdata->gd_Disabled_CY_Toleranz,GTCY_Labels,(ULONG)gadgetdata->gd_Labels_CY_Toleranz,GTCY_Active,gadgetdata->gd_Active_CY_Toleranz,TAG_END);
  234.                 wingads[BTID_schwarz_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_schwarz_w],GA_Disabled,gadgetdata->gd_Disabled_BT_schwarz_w,GT_Underscore,'_',TAG_END);
  235.                 wingads[BTID_braun_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_braun_w],GA_Disabled,gadgetdata->gd_Disabled_BT_braun_w,GT_Underscore,'_',TAG_END);
  236.                 wingads[BTID_rot_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_rot_w],GA_Disabled,gadgetdata->gd_Disabled_BT_rot_w,GT_Underscore,'_',TAG_END);
  237.                 wingads[BTID_orange_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_orange_w],GA_Disabled,gadgetdata->gd_Disabled_BT_orange_w,GT_Underscore,'_',TAG_END);
  238.                 wingads[BTID_gelb_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_gelb_w],GA_Disabled,gadgetdata->gd_Disabled_BT_gelb_w,GT_Underscore,'_',TAG_END);
  239.                 wingads[BTID_gruen_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_gruen_w],GA_Disabled,gadgetdata->gd_Disabled_BT_gruen_w,GT_Underscore,'_',TAG_END);
  240.                 wingads[BTID_blau_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_blau_w],GA_Disabled,gadgetdata->gd_Disabled_BT_blau_w,GT_Underscore,'_',TAG_END);
  241.                 wingads[BTID_violett_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_violett_w],GA_Disabled,gadgetdata->gd_Disabled_BT_violett_w,GT_Underscore,'_',TAG_END);
  242.                 wingads[BTID_grau_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_grau_w],GA_Disabled,gadgetdata->gd_Disabled_BT_grau_w,GT_Underscore,'_',TAG_END);
  243.                 wingads[BTID_weiss_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_weiss_w],GA_Disabled,gadgetdata->gd_Disabled_BT_weiss_w,GT_Underscore,'_',TAG_END);
  244.                 wingads[BTID_silber_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_silber_w],GA_Disabled,gadgetdata->gd_Disabled_BT_silber_w,GT_Underscore,'_',TAG_END);
  245.                 wingads[BTID_gold_w]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_gold_w],GA_Disabled,gadgetdata->gd_Disabled_BT_gold_w,GT_Underscore,'_',TAG_END);
  246.                 wingads[BTID_silber_t]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_silber_t],GA_Disabled,gadgetdata->gd_Disabled_BT_silber_t,GT_Underscore,'_',TAG_END);
  247.                 wingads[BTID_gold_t]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_gold_t],GA_Disabled,gadgetdata->gd_Disabled_BT_gold_t,GT_Underscore,'_',TAG_END);
  248.                 wingads[BTID_braun_t]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_braun_t],GA_Disabled,gadgetdata->gd_Disabled_BT_braun_t,GT_Underscore,'_',TAG_END);
  249.                 wingads[BTID_rot_t]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_rot_t],GA_Disabled,gadgetdata->gd_Disabled_BT_rot_t,GT_Underscore,'_',TAG_END);
  250.                 wingads[BTID_gruen_t]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_gruen_t],GA_Disabled,gadgetdata->gd_Disabled_BT_gruen_t,GT_Underscore,'_',TAG_END);
  251.                 wingads[BTID_blau_t]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_blau_t],GA_Disabled,gadgetdata->gd_Disabled_BT_blau_t,GT_Underscore,'_',TAG_END);
  252.                 wingads[BTID_violett_t]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_violett_t],GA_Disabled,gadgetdata->gd_Disabled_BT_violett_t,GT_Underscore,'_',TAG_END);
  253.                 wingads[BTID_neu]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_neu],GA_Disabled,gadgetdata->gd_Disabled_BT_neu,GT_Underscore,'_',TAG_END);
  254.                 wingads[BTID_Quit]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Quit],GA_Disabled,gadgetdata->gd_Disabled_BT_Quit,GT_Underscore,'_',TAG_END);
  255.                 wingads[TXID_wert]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_wert],GA_Disabled,gadgetdata->gd_Disabled_TX_wert,GTTX_Border,TRUE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_wert,TAG_END);
  256.                 wingads[TXID_Toleranz]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_Toleranz],GA_Disabled,gadgetdata->gd_Disabled_TX_Toleranz,GTTX_Border,TRUE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_Toleranz,TAG_END);
  257.                 wingads[TXID_schwarz_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_schwarz_w],GA_Disabled,gadgetdata->gd_Disabled_TX_schwarz_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_schwarz_w,TAG_END);
  258.                 wingads[TXID_braun_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_braun_w],GA_Disabled,gadgetdata->gd_Disabled_TX_braun_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_braun_w,TAG_END);
  259.                 wingads[TXID_rot_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_rot_w],GA_Disabled,gadgetdata->gd_Disabled_TX_rot_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_rot_w,TAG_END);
  260.                 wingads[TXID_orange_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_orange_w],GA_Disabled,gadgetdata->gd_Disabled_TX_orange_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_orange_w,TAG_END);
  261.                 wingads[TXID_gelb_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_gelb_w],GA_Disabled,gadgetdata->gd_Disabled_TX_gelb_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_gelb_w,TAG_END);
  262.                 wingads[TXID_gruen_W]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_gruen_W],GA_Disabled,gadgetdata->gd_Disabled_TX_gruen_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_gruen_w,TAG_END);
  263.                 wingads[TXID_blau_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_blau_w],GA_Disabled,gadgetdata->gd_Disabled_TX_blau_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_blau_w,TAG_END);
  264.                 wingads[TXID_violett_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_violett_w],GA_Disabled,gadgetdata->gd_Disabled_TX_violett_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_violett_w,TAG_END);
  265.                 wingads[TXID_grau_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_grau_w],GA_Disabled,gadgetdata->gd_Disabled_TX_grau_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_grau_w,TAG_END);
  266.                 wingads[TXID_weiss_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_weiss_w],GA_Disabled,gadgetdata->gd_Disabled_TX_weiss_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_weiss_w,TAG_END);
  267.                 wingads[TXID_silber_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_silber_w],GA_Disabled,gadgetdata->gd_Disabled_TX_silber_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_silber_w,TAG_END);
  268.                 wingads[TXID_gold_w]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_gold_w],GA_Disabled,gadgetdata->gd_Disabled_TX_gold_w,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_gold_w,TAG_END);
  269.                 wingads[TXID_silber_t]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_silber_t],GA_Disabled,gadgetdata->gd_Disabled_TX_silber_t,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_silber_t,TAG_END);
  270.                 wingads[TXID_gold_t]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_gold_t],GA_Disabled,gadgetdata->gd_Disabled_TX_gold_t,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_gold_t,TAG_END);
  271.                 wingads[TXID_braun_t]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_braun_t],GA_Disabled,gadgetdata->gd_Disabled_TX_braun_t,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_braun_t,TAG_END);
  272.                 wingads[TXID_rot_t]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_rot_t],GA_Disabled,gadgetdata->gd_Disabled_TX_rot_t,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_rot_t,TAG_END);
  273.                 wingads[TXID_gruen_t]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_gruen_t],GA_Disabled,gadgetdata->gd_Disabled_TX_gruen_t,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_gruen_t,TAG_END);
  274.                 wingads[TXID_blau_t]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_blau_t],GA_Disabled,gadgetdata->gd_Disabled_TX_blau_t,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_blau_t,TAG_END);
  275.                 wingads[TXID_violett_t]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_violett_t],GA_Disabled,gadgetdata->gd_Disabled_TX_violett_t,GTTX_Border,FALSE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX_violett_t,TAG_END);
  276.                 wingads[TXID_1Ring]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_1Ring],GA_Disabled,gadgetdata->gd_Disabled_TX1Ring,GTTX_Border,TRUE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX1Ring,TAG_END);
  277.                 wingads[TXID_2Ring]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_2Ring],GA_Disabled,gadgetdata->gd_Disabled_TX2Ring,GTTX_Border,TRUE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX2Ring,TAG_END);
  278.                 wingads[TXID_3Ring]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_3Ring],GA_Disabled,gadgetdata->gd_Disabled_TX3Ring,GTTX_Border,TRUE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX3Ring,TAG_END);
  279.                 wingads[TXID_4Ring]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[TXID_4Ring],GA_Disabled,gadgetdata->gd_Disabled_TX4Ring,GTTX_Border,TRUE,GTTX_CopyText,TRUE,GTTX_Text,(ULONG)gadgetdata->gd_Text_TX4Ring,TAG_END);
  280.                 return gadget;
  281.                 }
  282.         else return NULL;
  283. }
  284. ///
  285. /*************************************************************************/
  286. /*                                                                       */
  287. /*   Routines to create BOOPSI gadgets                                   */
  288. /*                                                                       */
  289. /*************************************************************************/
  290. ///Window
  291. ///
  292. /*************************************************************************/
  293. /*                                                                       */
  294. /*   Routines to handle windows                                          */
  295. /*                                                                       */
  296. /*************************************************************************/
  297. ///Window
  298. void HandleWindow(struct Screen *customscreen,LONG left,LONG top,APTR userdata)
  299. {
  300.         APTR             visualinfo   = NULL;
  301.         struct Gadget   *gadgetlist   = NULL;
  302.         char            *title        = "Widerstand 1.0 © A.Faust 2000";
  303.         struct Window   *win          = NULL;
  304.         struct Gadget   *wingads[99];
  305.         struct TextAttr  textattr     = { NULL,8,FS_NORMAL,FPF_DISKFONT };
  306.         struct Menu     *menustrip    = NULL;
  307.         int             ringnr        = 0;
  308.         ULONG  height=29,width=42,maxheight=1024,maxwidth=1280;
  309.  
  310.         textattr.ta_Name  = ((struct GfxBase *)GfxBase)->DefaultFont->tf_Message.mn_Node.ln_Name;
  311.         textattr.ta_YSize = ((struct GfxBase *)GfxBase)->DefaultFont->tf_YSize;
  312.         visualinfo        = GetVisualInfo(customscreen,TAG_DONE);
  313.  
  314.         if (visualinfo)
  315.                 {
  316.                 char *LA_CY_Bereich[]  = { "Milli-Ohm","Ohm","Kilo-Ohm","Mega-Ohm",NULL };
  317.                 char *LA_CY_Toleranz[]  = { "20%","10%","5%","2%","1%","0,5%","0,25%","0,1%",NULL };
  318.                 struct BevelFrame bevels[] = {
  319.                         XPOS(31),YPOS(1),XSIZE(10),YSIZE(23),"Code",3,
  320.                         };
  321.                 struct NewMenu menu[] = {
  322.                         NM_TITLE, "Project",0,0,0,0,
  323.                         NM_ITEM ,"New","N",0,0,0,
  324.                         NM_ITEM ,"About","A",0,0,0,
  325.                         NM_ITEM ,"Quit","Q",0,0,0,
  326.                         NULL,
  327.                         };
  328.                 struct NewGadget newgad[] = {
  329.                         XPOS(14),YPOS(19),XSIZE(14),YSIZE(2),NULL,&textattr, INID_Wert,PLACETEXT_LEFT,visualinfo,NULL,
  330.                         XPOS(14),YPOS(21),XSIZE(14),YSIZE(2),NULL,&textattr, CYID_Bereich,PLACETEXT_ABOVE,visualinfo,NULL,
  331.                         XPOS(14),YPOS(23),XSIZE(14),YSIZE(2),NULL,&textattr, CYID_Toleranz,PLACETEXT_ABOVE,visualinfo,NULL,
  332.                         XPOS(1),YPOS(4),XSIZE(2),YSIZE(2),"",&textattr, BTID_schwarz_w,PLACETEXT_IN,visualinfo,NULL,
  333.                         XPOS(1),YPOS(6),XSIZE(2),YSIZE(2),"",&textattr, BTID_braun_w,PLACETEXT_IN,visualinfo,NULL,
  334.                         XPOS(1),YPOS(8),XSIZE(2),YSIZE(2),"",&textattr, BTID_rot_w,PLACETEXT_IN,visualinfo,NULL,
  335.                         XPOS(1),YPOS(10),XSIZE(2),YSIZE(2),"",&textattr, BTID_orange_w,PLACETEXT_IN,visualinfo,NULL,
  336.                         XPOS(1),YPOS(12),XSIZE(2),YSIZE(2),"",&textattr, BTID_gelb_w,PLACETEXT_IN,visualinfo,NULL,
  337.                         XPOS(1),YPOS(14),XSIZE(2),YSIZE(2),"",&textattr, BTID_gruen_w,PLACETEXT_IN,visualinfo,NULL,
  338.                         XPOS(1),YPOS(16),XSIZE(2),YSIZE(2),"",&textattr, BTID_blau_w,PLACETEXT_IN,visualinfo,NULL,
  339.                         XPOS(1),YPOS(18),XSIZE(2),YSIZE(2),"",&textattr, BTID_violett_w,PLACETEXT_IN,visualinfo,NULL,
  340.                         XPOS(1),YPOS(20),XSIZE(2),YSIZE(2),"",&textattr, BTID_grau_w,PLACETEXT_IN,visualinfo,NULL,
  341.                         XPOS(1),YPOS(22),XSIZE(2),YSIZE(2),"",&textattr, BTID_weiss_w,PLACETEXT_IN,visualinfo,NULL,
  342.                         XPOS(1),YPOS(24),XSIZE(2),YSIZE(2),"",&textattr, BTID_silber_w,PLACETEXT_IN,visualinfo,NULL,
  343.                         XPOS(1),YPOS(26),XSIZE(2),YSIZE(2),"",&textattr, BTID_gold_w,PLACETEXT_IN,visualinfo,NULL,
  344.                         XPOS(14),YPOS(4),XSIZE(2),YSIZE(2),"",&textattr, BTID_silber_t,PLACETEXT_IN,visualinfo,NULL,
  345.                         XPOS(14),YPOS(6),XSIZE(2),YSIZE(2),"",&textattr, BTID_gold_t,PLACETEXT_IN,visualinfo,NULL,
  346.                         XPOS(14),YPOS(8),XSIZE(2),YSIZE(2),"",&textattr, BTID_braun_t,PLACETEXT_IN,visualinfo,NULL,
  347.                         XPOS(14),YPOS(10),XSIZE(2),YSIZE(2),"",&textattr, BTID_rot_t,PLACETEXT_IN,visualinfo,NULL,
  348.                         XPOS(14),YPOS(12),XSIZE(2),YSIZE(2),"",&textattr, BTID_gruen_t,PLACETEXT_IN,visualinfo,NULL,
  349.                         XPOS(14),YPOS(14),XSIZE(2),YSIZE(2),"",&textattr, BTID_blau_t,PLACETEXT_IN,visualinfo,NULL,
  350.                         XPOS(14),YPOS(16),XSIZE(2),YSIZE(2),"",&textattr, BTID_violett_t,PLACETEXT_IN,visualinfo,NULL,
  351.                         XPOS(17),YPOS(26),XSIZE(8),YSIZE(2),"_new",&textattr, BTID_neu,PLACETEXT_IN,visualinfo,NULL,
  352.                         XPOS(32),YPOS(26),XSIZE(8),YSIZE(2),"_Quit",&textattr, BTID_Quit,PLACETEXT_IN,visualinfo,NULL,
  353.                         XPOS(1),YPOS(1),XSIZE(6),YSIZE(2),NULL,&textattr, TXID_wert,PLACETEXT_LEFT,visualinfo,NULL,
  354.                         XPOS(14),YPOS(1),XSIZE(10),YSIZE(2),NULL,&textattr, TXID_Toleranz,PLACETEXT_LEFT,visualinfo,NULL,
  355.                         XPOS(4),YPOS(4),XSIZE(7),YSIZE(2),NULL,&textattr, TXID_schwarz_w,PLACETEXT_LEFT,visualinfo,NULL,
  356.                         XPOS(4),YPOS(6),XSIZE(5),YSIZE(2),NULL,&textattr, TXID_braun_w,PLACETEXT_LEFT,visualinfo,NULL,
  357.                         XPOS(4),YPOS(8),XSIZE(3),YSIZE(2),NULL,&textattr, TXID_rot_w,PLACETEXT_LEFT,visualinfo,NULL,
  358.                         XPOS(4),YPOS(10),XSIZE(6),YSIZE(2),NULL,&textattr, TXID_orange_w,PLACETEXT_LEFT,visualinfo,NULL,
  359.                         XPOS(4),YPOS(12),XSIZE(4),YSIZE(2),NULL,&textattr, TXID_gelb_w,PLACETEXT_LEFT,visualinfo,NULL,
  360.                         XPOS(4),YPOS(14),XSIZE(5),YSIZE(2),NULL,&textattr, TXID_gruen_W,PLACETEXT_LEFT,visualinfo,NULL,
  361.                         XPOS(4),YPOS(16),XSIZE(4),YSIZE(2),NULL,&textattr, TXID_blau_w,PLACETEXT_LEFT,visualinfo,NULL,
  362.                         XPOS(4),YPOS(18),XSIZE(7),YSIZE(2),NULL,&textattr, TXID_violett_w,PLACETEXT_LEFT,visualinfo,NULL,
  363.                         XPOS(4),YPOS(20),XSIZE(4),YSIZE(2),NULL,&textattr, TXID_grau_w,PLACETEXT_LEFT,visualinfo,NULL,
  364.                         XPOS(4),YPOS(22),XSIZE(5),YSIZE(2),NULL,&textattr, TXID_weiss_w,PLACETEXT_LEFT,visualinfo,NULL,
  365.                         XPOS(4),YPOS(24),XSIZE(6),YSIZE(2),NULL,&textattr, TXID_silber_w,PLACETEXT_LEFT,visualinfo,NULL,
  366.                         XPOS(4),YPOS(26),XSIZE(5),YSIZE(2),NULL,&textattr, TXID_gold_w,PLACETEXT_LEFT,visualinfo,NULL,
  367.                         XPOS(17),YPOS(4),XSIZE(6),YSIZE(2),NULL,&textattr, TXID_silber_t,PLACETEXT_LEFT,visualinfo,NULL,
  368.                         XPOS(17),YPOS(6),XSIZE(4),YSIZE(2),NULL,&textattr, TXID_gold_t,PLACETEXT_LEFT,visualinfo,NULL,
  369.                         XPOS(17),YPOS(8),XSIZE(5),YSIZE(2),NULL,&textattr, TXID_braun_t,PLACETEXT_LEFT,visualinfo,NULL,
  370.                         XPOS(17),YPOS(10),XSIZE(3),YSIZE(2),NULL,&textattr, TXID_rot_t,PLACETEXT_LEFT,visualinfo,NULL,
  371.                         XPOS(17),YPOS(12),XSIZE(4),YSIZE(2),NULL,&textattr, TXID_gruen_t,PLACETEXT_LEFT,visualinfo,NULL,
  372.                         XPOS(17),YPOS(14),XSIZE(4),YSIZE(2),NULL,&textattr, TXID_blau_t,PLACETEXT_LEFT,visualinfo,NULL,
  373.                         XPOS(17),YPOS(16),XSIZE(7),YSIZE(2),NULL,&textattr, TXID_violett_t,PLACETEXT_LEFT,visualinfo,NULL,
  374.                         XPOS(32),YPOS(3),XSIZE(8),YSIZE(2),NULL,&textattr, TXID_1Ring,PLACETEXT_LEFT,visualinfo,NULL,
  375.                         XPOS(32),YPOS(6),XSIZE(8),YSIZE(2),NULL,&textattr, TXID_2Ring,PLACETEXT_LEFT,visualinfo,NULL,
  376.                         XPOS(32),YPOS(9),XSIZE(8),YSIZE(2),NULL,&textattr, TXID_3Ring,PLACETEXT_LEFT,visualinfo,NULL,
  377.                         XPOS(32),YPOS(15),XSIZE(8),YSIZE(2),NULL,&textattr, TXID_4Ring,PLACETEXT_LEFT,visualinfo,NULL,
  378.                         };
  379.                 struct WindowData gadgetdata = {
  380.                         /* belongs to an integer gadget */
  381.                         FALSE,
  382.                         0,
  383.                         /* belongs to a cycle gadget */
  384.                         FALSE,
  385.                         1,
  386.                         (char * *)&LA_CY_Bereich[0],
  387.                         /* belongs to a cycle gadget */
  388.                         FALSE,
  389.                         0,
  390.                         (char * *)&LA_CY_Toleranz[0],
  391.                         /* belongs to a button */
  392.                         FALSE,
  393.                         /* belongs to a button */
  394.                         FALSE,
  395.                         /* belongs to a button */
  396.                         FALSE,
  397.                         /* belongs to a button */
  398.                         FALSE,
  399.                         /* belongs to a button */
  400.                         FALSE,
  401.                         /* belongs to a button */
  402.                         FALSE,
  403.                         /* belongs to a button */
  404.                         FALSE,
  405.                         /* belongs to a button */
  406.                         FALSE,
  407.                         /* belongs to a button */
  408.                         FALSE,
  409.                         /* belongs to a button */
  410.                         FALSE,
  411.                         /* belongs to a button */
  412.                         FALSE,
  413.                         /* belongs to a button */
  414.                         FALSE,
  415.                         /* belongs to a button */
  416.                         FALSE,
  417.                         /* belongs to a button */
  418.                         FALSE,
  419.                         /* belongs to a button */
  420.                         FALSE,
  421.                         /* belongs to a button */
  422.                         FALSE,
  423.                         /* belongs to a button */
  424.                         FALSE,
  425.                         /* belongs to a button */
  426.                         FALSE,
  427.                         /* belongs to a button */
  428.                         FALSE,
  429.                         /* belongs to a button */
  430.                         FALSE,
  431.                         /* belongs to a button */
  432.                         FALSE,
  433.                         /* belongs to a text gadget */
  434.                         TRUE,
  435.                         "value",
  436.                         /* belongs to a text gadget */
  437.                         TRUE,
  438.                         "tolerance",
  439.                         /* belongs to a text gadget */
  440.                         TRUE,
  441.                         "black",
  442.                         /* belongs to a text gadget */
  443.                         TRUE,
  444.                         "brown",
  445.                         /* belongs to a text gadget */
  446.                         TRUE,
  447.                         "red",
  448.                         /* belongs to a text gadget */
  449.                         TRUE,
  450.                         "orange",
  451.                         /* belongs to a text gadget */
  452.                         TRUE,
  453.                         "yellow",
  454.                         /* belongs to a text gadget */
  455.                         TRUE,
  456.                         "green",
  457.                         /* belongs to a text gadget */
  458.                         TRUE,
  459.                         "blue",
  460.                         /* belongs to a text gadget */
  461.                         TRUE,
  462.                         "violet",
  463.                         /* belongs to a text gadget */
  464.                         TRUE,
  465.                         "grey",
  466.                         /* belongs to a text gadget */
  467.                         TRUE,
  468.                         "white",
  469.                         /* belongs to a text gadget */
  470.                         TRUE,
  471.                         "silver",
  472.                         /* belongs to a text gadget */
  473.                         TRUE,
  474.                         "gold",
  475.                         /* belongs to a text gadget */
  476.                         TRUE,
  477.                         "silver",
  478.                         /* belongs to a text gadget */
  479.                         TRUE,
  480.                         "gold",
  481.                         /* belongs to a text gadget */
  482.                         TRUE,
  483.                         "brown",
  484.                         /* belongs to a text gadget */
  485.                         TRUE,
  486.                         "red",
  487.                         /* belongs to a text gadget */
  488.                         TRUE,
  489.                         "green",
  490.                         /* belongs to a text gadget */
  491.                         TRUE,
  492.                         "blue",
  493.                         /* belongs to a text gadget */
  494.                         TRUE,
  495.                         "violet",
  496.                         /* belongs to a text gadget */
  497.                         TRUE,
  498.                         "1.ring",
  499.                         /* belongs to a text gadget */
  500.                         TRUE,
  501.                         "2.ring",
  502.                         /* belongs to a text gadget */
  503.                         TRUE,
  504.                         "3.ring",
  505.                         /* belongs to a text gadget */
  506.                         TRUE,
  507.                         "no ring",
  508.                         };
  509.                 height= YSIZE(height);
  510.                 width = XSIZE(width) ;
  511.                 if (left == -1) left = (customscreen->Width -width )/2;
  512.                 if (top  == -1) top  = (customscreen->Height-height)/2;
  513.  
  514.                 if (CreateGadgetsWindow(&gadgetlist,newgad,wingads,&gadgetdata) != NULL)
  515.                         {
  516.                         if (height>customscreen->Height || width>customscreen->Width) GUIC_ErrorReport(NULL,ERROR_SCREEN_TOO_SMALL);
  517.                         win=OpenWindowTags(NULL,WA_Activate,         TRUE,
  518.                                                 WA_CloseGadget,      TRUE,
  519.                                                 WA_DepthGadget,      TRUE,
  520.                                                 WA_SizeGadget,       FALSE,
  521.                                                 WA_DragBar,          TRUE,
  522.                                                 WA_Gadgets,          (ULONG)gadgetlist,
  523.                                                 WA_InnerHeight,      height,
  524.                                                 WA_InnerWidth,       width,
  525.                                                 WA_IDCMP,            IDCMP_CLOSEWINDOW|IDCMP_NEWSIZE|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW|IDCMP_GADGETUP|IDCMP_MENUPICK|BUTTONIDCMP|INTEGERIDCMP|CYCLEIDCMP,
  526.                                                 WA_Left,             left,
  527.                                                 WA_Top,              top,
  528.                                                 WA_MaxHeight,        maxheight,
  529.                                                 WA_MinHeight,        height,
  530.                                                 WA_MaxWidth,         maxwidth,
  531.                                                 WA_MinWidth,         width,
  532.                                                 WA_SizeBRight,       FALSE,
  533.                                                 WA_SizeBBottom,      FALSE,
  534.                                                 WA_SmartRefresh,     TRUE,
  535.                                                 WA_CustomScreen,     (ULONG)customscreen,
  536.                                                 WA_Title,            (ULONG)title,
  537.                                                 WA_NewLookMenus,     TRUE,
  538.                                         TAG_END);
  539.                         if (win)
  540.                                 {
  541.                                 menustrip=CreateMenus(menu,GTMN_NewLookMenus,TRUE,TAG_END);
  542.                                 if (menustrip)
  543.                                         {
  544.                                         if (LayoutMenus(menustrip,visualinfo,GTMN_NewLookMenus,TRUE,TAG_END))
  545.                                                 {
  546.                                                 if (SetMenuStrip(win,menustrip))
  547.                                                         {
  548.                                                         struct IntuiMessage  *imessage   = NULL;
  549.                                                         struct Gadget        *idcmpgad   = NULL;
  550.                                                         struct Gadget        *firstboopsi= 0;
  551.                                                         ULONG  idcmpclass                = 0;
  552.                                                         UWORD  messagecode               = 0;
  553.                                                         BOOL   running                   = TRUE;
  554.                                                         ULONG  signal                    = 0;
  555.                                                         ULONG  longpointer1              = 0;
  556.                                                         ULONG  longpointer2              = 0;
  557.                                                         SetFont(win->RPort,((struct GfxBase *)GfxBase)->DefaultFont);
  558.                                                         CreateBevelFrames(win,visualinfo,1,bevels);
  559.                                                         GT_RefreshWindow(win,NULL);
  560.                                                         UserSetupWindow(win,wingads,ringnr);
  561.                                                         do
  562.                                                                 {
  563.                                                                 if (running) signal=Wait(SIGBREAKF_CTRL_C | 1L << win->UserPort->mp_SigBit);
  564.                                                                 if (signal & SIGBREAKF_CTRL_C) running=FALSE;
  565.                                                                 while (running && (imessage=GT_GetIMsg(win->UserPort)))
  566.                                                                         {
  567.                                                                         idcmpgad=(struct Gadget *)imessage->IAddress;
  568.                                                                         idcmpclass=imessage->Class;
  569.                                                                         messagecode =imessage->Code;
  570.  
  571.                                                                         GT_ReplyIMsg(imessage);
  572.  
  573.                                                                         switch(idcmpclass)
  574.                                                                                 {
  575.                                                                                 case IDCMP_REFRESHWINDOW:
  576.                                                                                         GT_BeginRefresh(win);
  577.                                                                                         GT_EndRefresh(win,TRUE);
  578.                                                                                         break;
  579.                                                                                 case IDCMP_CLOSEWINDOW:
  580.                                                                                         running=FALSE;
  581.                                                                                         break;
  582.                                                                                 case IDCMP_GADGETUP:
  583.                                                                                 case MXIDCMP:
  584.                                                                                         ringnr++;
  585.                                                                                         ringnr = HandleGadgetsWindow(win,wingads,idcmpgad->GadgetID,messagecode,&gadgetdata,ringnr);
  586.                                                                                         break;
  587.                                                                                 case IDCMP_MENUPICK:
  588.                                                                                         switch(MENUNUM(messagecode))
  589.                                                                                                 {
  590.                                                                                                 case 0:
  591.                                                                                                         switch (ITEMNUM(messagecode))
  592.                                                                                                                 {
  593.                                                                                                                 case 0:
  594.                                                                                                                         ringnr = 0;
  595.                                                                                                                         GT_SetGadgetAttrs(wingads[TXID_1Ring],win,NULL,GTTX_Text,(ULONG)("1.ring"),TAG_DONE);
  596.                                                                                                                         GT_SetGadgetAttrs(wingads[TXID_2Ring],win,NULL,GTTX_Text,(ULONG)("2.ring"),TAG_DONE);
  597.                                                                                                                         GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)("3.ring"),TAG_DONE);
  598.                                                                                                                         GT_SetGadgetAttrs(wingads[TXID_4Ring],win,NULL,GTTX_Text,(ULONG)("no ring"),TAG_DONE);
  599.                                                                                                                         GT_SetGadgetAttrs(wingads[CYID_Bereich],win,NULL,GTCY_Active,(UWORD)1,TAG_DONE);
  600.                                                                                                                         GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)0,TAG_DONE);
  601.                                                                                                                         GT_SetGadgetAttrs(wingads[INID_Wert],win,NULL,GTIN_Number,(UWORD)0,TAG_DONE);
  602.                                                                                                                         ringvalue[0] = 0;
  603.                                                                                                                         ringvalue[1] = 0;
  604.                                                                                                                         ringvalue[2] = 0;
  605.                                                                                                                         faktor=1;
  606.                                                                                                                         GT_RefreshWindow(win,NULL);
  607.                                                                                                                         break;
  608.                                                                                                                 case 1:
  609.                                                                                                                         About(win,wingads,userdata);
  610.                                                                                                                         break;
  611.                                                                                                                 case 2:
  612.                                                                                                                         Signal(FindTask(NULL), SIGBREAKF_CTRL_C);
  613.                                                                                                                         break;
  614.                                                                                                                 }
  615.                                                                                                         break;
  616.                                                                                                 }
  617.                                                                                         break;
  618.                                                                                 case IDCMP_VANILLAKEY:
  619.                                                                                         switch(messagecode)
  620.                                                                                                 {
  621.                                                                                                 case 'n':
  622.                                                                                                         GT_GetGadgetAttrs(wingads[BTID_neu],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  623.                                                                                                         if (longpointer1 == 0)
  624.                                                                                                                 {
  625.                                                                                                                 ShowGadget(win,wingads[BTID_neu],GADGET_DOWN);
  626.                                                                                                                 Delay(5);
  627.                                                                                                                 ShowGadget(win,wingads[BTID_neu],GADGET_UP  );
  628.                                                                                                                 ringnr = HandleGadgetsWindow(win,wingads,BTID_neu,messagecode,&gadgetdata,ringnr);
  629.                                                                                                                 }
  630.                                                                                                         ringnr = 0;
  631.                                                                                                         GT_SetGadgetAttrs(wingads[TXID_1Ring],win,NULL,GTTX_Text,(ULONG)("1.ring"),TAG_DONE);
  632.                                                                                                         GT_SetGadgetAttrs(wingads[TXID_2Ring],win,NULL,GTTX_Text,(ULONG)("2.ring"),TAG_DONE);
  633.                                                                                                         GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)("3.ring"),TAG_DONE);
  634.                                                                                                         GT_SetGadgetAttrs(wingads[TXID_4Ring],win,NULL,GTTX_Text,(ULONG)("no ring"),TAG_DONE);
  635.                                                                                                         GT_SetGadgetAttrs(wingads[CYID_Bereich],win,NULL,GTCY_Active,(UWORD)1,TAG_DONE);
  636.                                                                                                         GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)0,TAG_DONE);
  637.                                                                                                         GT_SetGadgetAttrs(wingads[INID_Wert],win,NULL,GTIN_Number,(UWORD)0,TAG_DONE);
  638.                                                                                                         ringvalue[0] = 0;
  639.                                                                                                         ringvalue[1] = 0;
  640.                                                                                                         ringvalue[2] = 0;
  641.                                                                                                         faktor=1;
  642.                                                                                                         GT_RefreshWindow(win,NULL);
  643.                                                                                                         break;
  644.                                                                                                 case 'q':
  645.                                                                                                         GT_GetGadgetAttrs(wingads[BTID_Quit],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  646.                                                                                                         if (longpointer1 == 0)
  647.                                                                                                                 {
  648.                                                                                                                 ShowGadget(win,wingads[BTID_Quit],GADGET_DOWN);
  649.                                                                                                                 Delay(5);
  650.                                                                                                                 ShowGadget(win,wingads[BTID_Quit],GADGET_UP  );
  651.                                                                                                                 ringnr = HandleGadgetsWindow(win,wingads,BTID_Quit,messagecode,&gadgetdata,ringnr);
  652.                                                                                                                 Signal(FindTask(NULL), SIGBREAKF_CTRL_C);
  653.                                                                                                                 }
  654.                                                                                                         break;
  655.                                                                                                 case 27:
  656.                                                                                                         running=FALSE;
  657.                                                                                                         break;
  658.                                                                                                 }
  659.                                                                                         break;
  660.                                                                                 }
  661.                                                                         /* end-switch */
  662.                                                                         }
  663.                                                                 /* end-while */
  664.                                                                 }
  665.                                                         while (running);
  666.                                                         ClearMenuStrip(win);
  667.                                                         }
  668.                                                 else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  669.                                                 }
  670.                                         else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  671.                                         FreeMenus(menustrip);
  672.                                         }
  673.                                 else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  674.                                 if (win) CloseWindow(win);
  675.                                 }
  676.                         else GUIC_ErrorReport(win,ERROR_NO_WINDOW_OPENED);
  677.                         if (gadgetlist) FreeGadgets(gadgetlist);
  678.                         }
  679.                 else GUIC_ErrorReport(NULL,ERROR_NO_GADGETS_CREATED);
  680.                 if (visualinfo) FreeVisualInfo(visualinfo);
  681.                 }
  682.         else GUIC_ErrorReport(NULL,ERROR_NO_VISUALINFO);
  683. }
  684. ///
  685.